Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритми та методи обчислень

Частина тексту файла

Кафедра ЕОМ  Звіт з лабораторної роботи № 5 з дисципліни: “Алгоритми та методи обчислень” Варіант № 7 Мета роботи: ознайомитися з парадигмою функційного програмування. Вхідні дані 7: 565, 566, 561, 561, 557, 560, 561, 556, 556, 552, 559, 551, 556, 557, 552, 554, 546, 551, 552, 547 Лістинг програми: #include <iostream> #include <list> #include <algorithm> #include <future> template<typename T> std::list<T> parallel_quick_sort(std::list<T> input) { if (input.size() < 2) { return input; } //move frist element in the list to result list and take it as pivot value std::list<T> result; result.splice(result.begin(), input, input.begin()); T pivot = *result.begin(); //partition the input array auto divide_point = std::partition(input.begin(), input.end(), [&](T const & t) { return t < pivot; }); std::list<T> lower_list; lower_list.splice(lower_list.end(), input, input.begin(), divide_point); auto new_lower(parallel_quick_sort(std::move(lower_list))); std::future<std::list<T>> new_upper_future (std::async(&parallel_quick_sort<T>, std::move(input))); result.splice(result.begin(), new_lower); result.splice(result.end(), new_upper_future.get()); return result; } int main() { std::list<int> my_list; my_list.push_back(565); my_list.push_back(566); my_list.push_back(561); my_list.push_back(561); my_list.push_back(557); my_list.push_back(560); my_list.push_back(561); my_list.push_back(556); my_list.push_back(552); my_list.push_back(559); my_list.push_back(551); my_list.push_back(556); my_list.push_back(557); my_list.push_back(552); my_list.push_back(554); my_list.push_back(556); my_list.push_back(551); my_list.push_back(552); my_list.push_back(547); std::cout<< "Array:"<<std::endl; for (auto &var : my_list) { std::cout << var << " "; } auto result = parallel_quick_sort<int>(my_list); std::cout<<std::endl<<"Sorted array:"<< std::endl; for (auto &var : result) { std::cout << var << " "; } std::cout<<std::endl; } Скріншот виконання програми:  Висновок - ознайомився з парадигмою фінкційного програмування
Антиботан аватар за замовчуванням

14.10.2018 19:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини